今天就來講講VIEWBAG VIEWDATA TEMPDATA
這三個是甚麼呢
他們是CONTROLLER 傳送資料給VIEW的方法
那差異在哪呢
我們來分別釐清
public ActionResult TRY5()
{
ViewData["X"] = "我是VIEWDATA";
ViewBag.Y = "我是VIEWBAG";
TempData["Z"] = "我是TEMPDATA";
return View();
}
這是寫在CONTROLLER裡的
第一個ViewData他的名稱["X"]是在[]框框裡加入字串
第二個ViewBag他的名稱Y則是直接用點的就好了
第三個TempData他的名稱["Z"]是在[]框框裡加入字串
看到差異性了嗎~~應該不難
那我們新增一個TRY5的VIEW吧
新增檢視>選空白的PAGE就好了
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>TRY5</title>
</head>
<body>
<div>
VIEWDATA:@ViewData["X"]
VIEWBAG:@ViewBag.Y
TEMPDATA:@TempData["Z"]
</div>
</body>
</html>
重點在這邊
用@的方式去抓取資料!!
執行看看發生甚麼是吧~
圖1
我忘了換行...
沒關西那是順利抓到資料了
還有要注意甚麼呢~~
注意他們後面得名稱
如果重複會出現問題喔
甚麼意思
如果
ViewData["9453"] = "我是VIEWDATA";
ViewBag.9453 = "我是VIEWBAG";
兩個名稱重複 他們在資料傳遞的過程會打架喔
就是會抓不到其中一個
所以使用的時候要特別注意一下喔!!